package com.tanhua.dubbo.server.api;

import com.tanhua.dubbo.server.enums.HuanXinMessageType;
import com.tanhua.dubbo.server.pojo.HuanXinUser;

/**
 * Created with IntelliJ IDEA.
 *
 * @ClassName: HuanXinApi
 * @Author:王晨晗
 * @Description: 与环信平台对接的接口,实现环信平台的相关操作
 * @Date: 2022/01/05/16:49
 */
public interface HuanXinApi {

    /**
     * @description 获取环信平台的token,即获取管理员权限
     * @return
     */
    String getToken();

    /**
     * @description 在环信平台注册用户
     * @param userId
     * @return
     */
    Boolean register(Long userId);

    /**
     * @description 根据id查询环信用户的信息
     * @param userId
     * @return
     */
    HuanXinUser queryHuanXinUser(Long userId);

    /**
     * @description 根据环信用户名查询用户信息
     * @param userName
     * @return
     */
    HuanXinUser queryUserByUserName(String userName);

    /**
     * @description 添加好友信息
     * @param userId        当前用户id
     * @param friendId      朋友id
     * @return
     */
    Boolean addUserFriend(Long userId , Long friendId);

    /**
     * @description 删除好友
     * @param userId
     * @param friendId
     * @return
     */
    Boolean removeUserFriend(Long userId , Long friendId);

    /**
     * @description 以管理员身份发送默聊信息
     * @param targetUserName        发送目标的用户名
     * @param huanXinMessageType    消息类型
     * @param msg   消息内容
     * @return
     */
    Boolean sendMsgFromAdmin(String targetUserName, HuanXinMessageType huanXinMessageType, String msg);

    /**
     * @description 环信添加黑名单到数据库
     * @param id
     * @param userId
     * @return
     */
    Boolean addBlackUser(Long id, Long userId);

    /**
     * @description 移除环信用户黑名单
     * @param id
     * @param userId
     * @return
     */
    Boolean removeBlackUser(Long id, Long userId);
}
